package com.itheima.utils;

/**
 * 和事务管理相关的工具类，包含开启事务，提交事务，回滚事务和释放连接。
 */
public class TransactionManager {
     private ConnecctionUtils connecctionUtils;
    //在spring中进行注入
    public void setConnecctionUtils(ConnecctionUtils connecctionUtils) {
        this.connecctionUtils = connecctionUtils;
    }
    //1开启事务
    public void beginTransaction(){
        try{
            //让setAutoCommit为false
            connecctionUtils.getConnection().setAutoCommit(false);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //2提交事务
    public void commitTransaction(){
        try{
            connecctionUtils.getConnection().commit();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //3回滚事务
    public void rollbackTransaction(){
        try{
            connecctionUtils.getConnection().rollback();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //4释放连接
    public void closeTransaction(){
        try{
            connecctionUtils.getConnection().close();//并不是真正的关闭，而是还到连接池。
            connecctionUtils.removeConection();//和线程进行进行解绑。
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
